package com.taobao.api.domain;

import java.util.List;

import com.taobao.api.TaobaoObject;
import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.internal.mapping.ApiListField;

/**
 * 退款单
 *
 * @author auto create
 * @since 1.0, null
 */
public class RefundBill extends TaobaoObject {

  private static final long serialVersionUID = 6176894599597714749L;

  /**
   * 实际退款金额
   */
  @ApiField("actual_refund_fee")
  private Long              actualRefundFee;

  /**
   * 支付宝交易号
   */
  @ApiField("alipay_no")
  private String            alipayNo;

  /**
   * 扩展属性
   */
  @ApiField("attribute")
  private String            attribute;

  /**
   * 单据类型，退款单
   */
  @ApiField("bill_type")
  private String            billType;

  /**
   * 买家昵称
   */
  @ApiField("buyer_nick")
  private String            buyerNick;

  /**
   * 退款创建时间
   */
  @ApiField("created")
  private String            created;

  /**
   * 淘宝小二是否介入
   */
  @ApiField("cs_status")
  private String            csStatus;

  /**
   * 当前状态超时时间
   */
  @ApiField("current_phase_timeout")
  private String            currentPhaseTimeout;

  /**
   * 退款商品信息
   */
  @ApiListField("item_list")
  @ApiField("refund_item")
  private List<RefundItem>  itemList;

  /**
   * 最后一次修改时间
   */
  @ApiField("modified")
  private String            modified;

  /**
   * 交易子订单号
   */
  @ApiField("oid")
  private Long              oid;

  /**
   * cannot_refuse: 不允许操作 refund_onweb: 需要到网页版操作
   */
  @ApiField("operation_constraint")
  private String            operationConstraint;

  /**
   * 申请退款原因
   */
  @ApiField("reason")
  private String            reason;

  /**
   * 申请退款金额，单位：分
   */
  @ApiField("refund_fee")
  private Long              refundFee;

  /**
   * 退款单编号
   */
  @ApiField("refund_id")
  private Long              refundId;

  /**
   * onsale:售中 aftersale：售后
   */
  @ApiField("refund_phase")
  private String            refundPhase;

  /**
   * refund:仅退款 return:退款退货
   */
  @ApiField("refund_type")
  private String            refundType;

  /**
   * 退款协议版本
   */
  @ApiField("refund_version")
  private Long              refundVersion;

  /**
   * 卖家昵称
   */
  @ApiField("seller_nick")
  private String            sellerNick;

  /**
   * 退款单 状态 wait_seller_agree：买家申请，等待卖家同意 seller_refuse：卖家拒绝 goods_returning：退货中
   * closed：退款失败 success：退款成功
   */
  @ApiField("status")
  private String            status;

  /**
   * 退款单的相关标签信息
   */
  @ApiListField("tag_list")
  @ApiField("tag")
  private List<Tag>         tagList;

  /**
   * 交易主订单号
   */
  @ApiField("tid")
  private Long              tid;

  /**
   * wait_send_good:等待卖家发货 wait_confirm_good：卖家已发货，等待买家确认收货 finish: 交易完成
   */
  @ApiField("trade_status")
  private String            tradeStatus;

  public Long getActualRefundFee() {
    return this.actualRefundFee;
  }

  public void setActualRefundFee(Long actualRefundFee) {
    this.actualRefundFee = actualRefundFee;
  }

  public String getAlipayNo() {
    return this.alipayNo;
  }

  public void setAlipayNo(String alipayNo) {
    this.alipayNo = alipayNo;
  }

  public String getAttribute() {
    return this.attribute;
  }

  public void setAttribute(String attribute) {
    this.attribute = attribute;
  }

  public String getBillType() {
    return this.billType;
  }

  public void setBillType(String billType) {
    this.billType = billType;
  }

  public String getBuyerNick() {
    return this.buyerNick;
  }

  public void setBuyerNick(String buyerNick) {
    this.buyerNick = buyerNick;
  }

  public String getCreated() {
    return this.created;
  }

  public void setCreated(String created) {
    this.created = created;
  }

  public String getCsStatus() {
    return this.csStatus;
  }

  public void setCsStatus(String csStatus) {
    this.csStatus = csStatus;
  }

  public String getCurrentPhaseTimeout() {
    return this.currentPhaseTimeout;
  }

  public void setCurrentPhaseTimeout(String currentPhaseTimeout) {
    this.currentPhaseTimeout = currentPhaseTimeout;
  }

  public List<RefundItem> getItemList() {
    return this.itemList;
  }

  public void setItemList(List<RefundItem> itemList) {
    this.itemList = itemList;
  }

  public String getModified() {
    return this.modified;
  }

  public void setModified(String modified) {
    this.modified = modified;
  }

  public Long getOid() {
    return this.oid;
  }

  public void setOid(Long oid) {
    this.oid = oid;
  }

  public String getOperationConstraint() {
    return this.operationConstraint;
  }

  public void setOperationConstraint(String operationConstraint) {
    this.operationConstraint = operationConstraint;
  }

  public String getReason() {
    return this.reason;
  }

  public void setReason(String reason) {
    this.reason = reason;
  }

  public Long getRefundFee() {
    return this.refundFee;
  }

  public void setRefundFee(Long refundFee) {
    this.refundFee = refundFee;
  }

  public Long getRefundId() {
    return this.refundId;
  }

  public void setRefundId(Long refundId) {
    this.refundId = refundId;
  }

  public String getRefundPhase() {
    return this.refundPhase;
  }

  public void setRefundPhase(String refundPhase) {
    this.refundPhase = refundPhase;
  }

  public String getRefundType() {
    return this.refundType;
  }

  public void setRefundType(String refundType) {
    this.refundType = refundType;
  }

  public Long getRefundVersion() {
    return this.refundVersion;
  }

  public void setRefundVersion(Long refundVersion) {
    this.refundVersion = refundVersion;
  }

  public String getSellerNick() {
    return this.sellerNick;
  }

  public void setSellerNick(String sellerNick) {
    this.sellerNick = sellerNick;
  }

  public String getStatus() {
    return this.status;
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public List<Tag> getTagList() {
    return this.tagList;
  }

  public void setTagList(List<Tag> tagList) {
    this.tagList = tagList;
  }

  public Long getTid() {
    return this.tid;
  }

  public void setTid(Long tid) {
    this.tid = tid;
  }

  public String getTradeStatus() {
    return this.tradeStatus;
  }

  public void setTradeStatus(String tradeStatus) {
    this.tradeStatus = tradeStatus;
  }

}
